home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 February / EnterCD 02_2004.iso / Gry / Arcade! Classic Arcade Pack 2.0 / Arcade.EXE / $PROGRAMFILES / Arcade! Classic Arcade Pack / invader.swf / scripts / frame_23 / DoAction.as
Encoding:
Text File  |  2003-12-05  |  6.1 KB  |  232 lines

  1. stop();
  2. dir = 4;
  3. dead = time = tonePos = 0;
  4. paused = gameOver = newLife = false;
  5. if(playTop < playBtm)
  6. {
  7.    playTop += downSpeed;
  8. }
  9. speed = (playTop + 120) * 2;
  10. this.onEnterFrame = function()
  11. {
  12.    if(paused || newLife)
  13.    {
  14.       return undefined;
  15.    }
  16.    for(var i in alien_mc)
  17.    {
  18.       for(var j in alien_mc[i])
  19.       {
  20.          var a_mc = alien_mc[i][j];
  21.          if(typeof a_mc == "movieclip" && a_mc.hitTest(laser_mc))
  22.          {
  23.             explode_mc._x = Number(a_mc._x) + Number(a_mc._parent._x);
  24.             explode_mc._y = Number(a_mc._y) + Number(a_mc._parent._y);
  25.             explode_mc.gotoAndPlay(2);
  26.             score += a_mc.val;
  27.             setScore();
  28.             dead++;
  29.             a_mc.removeMovieClip();
  30.             resetLaser();
  31.             break;
  32.          }
  33.       }
  34.    }
  35.    if(laser_mc._visible)
  36.    {
  37.       for(var i in barracks_mc)
  38.       {
  39.          var b_mc = barracks_mc[i];
  40.          if(b_mc._visible)
  41.          {
  42.             if(b_mc.hitTest(laser_mc))
  43.             {
  44.                if(b_mc._currentframe == 4)
  45.                {
  46.                   b_mc._visible = false;
  47.                }
  48.                else
  49.                {
  50.                   b_mc.nextFrame();
  51.                }
  52.                resetLaser();
  53.                break;
  54.             }
  55.          }
  56.       }
  57.    }
  58.    if(ufo_mc._visible && ufo_mc._currentframe == 1)
  59.    {
  60.       if(ufo_mc.hitTest(laser_mc))
  61.       {
  62.          ufoSound_mc.gotoAndStop(1);
  63.          ufo_mc.gotoAndPlay(2);
  64.          resetLaser();
  65.       }
  66.    }
  67.    rate = 1000 - speed - dead * 4;
  68.    if(rate < 0)
  69.    {
  70.       rate = 0;
  71.    }
  72.    var n = 4;
  73.    while(true)
  74.    {
  75.       if(n > 0)
  76.       {
  77.          var f_mc = _root["fire" + n + "_mc"];
  78.          if(f_mc._visible)
  79.          {
  80.             with(f_mc)
  81.             {
  82.                if(n < 4)
  83.                {
  84.                   _y += 6;
  85.                }
  86.                if(_y > 390)
  87.                {
  88.                   _visible = false;
  89.                }
  90.             }
  91.             if(f_mc._y > 275)
  92.             {
  93.                for(var i in barracks_mc)
  94.                {
  95.                   var b_mc = barracks_mc[i];
  96.                   if(b_mc._visible)
  97.                   {
  98.                      if(b_mc.hitTest(f_mc))
  99.                      {
  100.                         f_mc._visible = false;
  101.                         if(b_mc._currentframe == 4)
  102.                         {
  103.                            b_mc._visible = false;
  104.                         }
  105.                         else
  106.                         {
  107.                            b_mc.nextFrame();
  108.                         }
  109.                         break;
  110.                      }
  111.                   }
  112.                }
  113.                if(base_mc.hitTest(f_mc))
  114.                {
  115.                   f_mc._visible = laser_mc._visible = ufo_mc._visible = false;
  116.                   fire1_mc._visible = fire2_mc._visible = fire3_mc._visible = fire4_mc._visible = false;
  117.                   resetLaser();
  118.                   ufo_mc.gotoAndStop(1);
  119.                   ufoSound_mc.gotoAndStop(1);
  120.                   base_mc.gotoAndPlay(2);
  121.                   newLife = true;
  122.                   lives--;
  123.                   if(lives < 1)
  124.                   {
  125.                      break;
  126.                   }
  127.                }
  128.             }
  129.          }
  130.          if((rate + 8) * rnd() < 4)
  131.          {
  132.             var j = int(rnd() * 11);
  133.             for(var i in alien_mc)
  134.             {
  135.                var a_mc = alien_mc[i][j];
  136.                if(typeof a_mc == "movieclip" && a_mc._visible && !f_mc._visible)
  137.                {
  138.                   f_mc._x = Number(a_mc._x) + Number(a_mc._parent._x);
  139.                   f_mc._y = Number(a_mc._y) + Number(a_mc._parent._y) + 16;
  140.                   f_mc._visible = true;
  141.                   f_mc.gotoAndPlay(2);
  142.                   break;
  143.                }
  144.             }
  145.          }
  146.       }
  147.       else
  148.       {
  149.          if(getTimer() - time < rate)
  150.          {
  151.             return undefined;
  152.          }
  153.          time = getTimer();
  154.          alienSound_mc.gotoAndStop(tonePos + 2);
  155.          tonePos++;
  156.          tonePos %= 4;
  157.          xMax = playMin;
  158.          xMin = playMax;
  159.          allGone = true;
  160.          for(var i in alien_mc)
  161.          {
  162.             if(moveDown)
  163.             {
  164.                alien_mc[i]._y += downSpeed;
  165.             }
  166.             else
  167.             {
  168.                alien_mc[i]._x += dir;
  169.             }
  170.             for(var j in alien_mc[i])
  171.             {
  172.                if(typeof alien_mc[i][j] == "movieclip")
  173.                {
  174.                   allGone = false;
  175.                   alien_mc[i][j].nextFrame();
  176.                   var x = Number(alien_mc[i]._x) + Number(alien_mc[i][j]._x);
  177.                   if(x < xMin)
  178.                   {
  179.                      xMin = x;
  180.                   }
  181.                   if(x > xMax)
  182.                   {
  183.                      xMax = x;
  184.                   }
  185.                   if(moveDown)
  186.                   {
  187.                      if(Number(alien_mc[i]._y) + Number(alien_mc[i][j]._y) > 320)
  188.                      {
  189.                         lives = 0;
  190.                         newLife = gameOver = true;
  191.                         ufoSound_mc.gotoAndStop(1);
  192.                         base_mc.gotoAndPlay(2);
  193.                         gotoAndStop(24);
  194.                         delete this.onEnterFrame;
  195.                         return undefined;
  196.                      }
  197.                   }
  198.                }
  199.             }
  200.          }
  201.          if(!moveDown && (xMax > playMax || xMin < playMin))
  202.          {
  203.             dir *= -1;
  204.             speed += 30;
  205.             moveDown = true;
  206.          }
  207.          else
  208.          {
  209.             moveDown = false;
  210.          }
  211.          if(allGone)
  212.          {
  213.             score += 1000;
  214.             setScore();
  215.             if(lives < 9)
  216.             {
  217.                lives++;
  218.                setLives();
  219.             }
  220.             ufoSound_mc.gotoAndStop(1);
  221.             gotoAndPlay(4);
  222.             delete this.onEnterFrame;
  223.          }
  224.       }
  225.       n--;
  226.    }
  227.    gameOver = true;
  228.    gotoAndStop(24);
  229.    delete this.onEnterFrame;
  230.    return undefined;
  231. };
  232.